树莓派4B开机+Python虚拟环境搭建(Miniconda3)

您所在的位置:网站首页 树莓派 自启动服务 树莓派4B开机+Python虚拟环境搭建(Miniconda3)

树莓派4B开机+Python虚拟环境搭建(Miniconda3)

2023-03-12 04:39| 来源: 网络整理| 查看: 265

前言

最近在做个项目,需要用到树莓派开发,购买了一套7英寸IPS显示器,鉴于需要另外接键鼠,且需要占用空间,决定放弃显示器,改用SSH链接。

树莓派中烧录过2020-6月的版本,用 uname -a 命令查看系统为32位:

uname -a

由于树莓派推出64位系统,好处是内存超过4GB的硬件可以得到充分利用,因此本次下载64位的镜像,重新烧录。

以下为树莓派烧录及Python虚拟环境搭建记录,其中包括遇到的坑,希望将来遇到类似问题有所参考。

树莓派1 树莓派开机

树莓派是一台微型计算机,没有继电器电源开关,通电即可开机,USB电源也可以,说明书标定5 V DC 最小额定电流 3 A。

关机命令如下:

sudo shutdown -h now

由于树莓派没有存放系统的硬盘,需要将系统写入TF卡,当作其硬盘使用。

TF卡可以用SD或USB读卡器插入电脑,进行系统烧录。

2 镜像下载

本次烧录为树莓派官方raspbian OS

树莓派官网镜像下载地址:

Raspberry Pi OS – Raspberry Pi

官方提供了 Windows macOS 及 Ubuntu 的镜像下载:

树莓派官方镜像下载

树莓派支持的提供很多,做特定功能使用的系统也较多,这里不再赘述,需要时可自行搜索。

3 TF卡烧录

第一步,格式化

旧版本的树莓派OS可通过 balenaEtcher 软件进行镜像烧录,烧录前需对TF卡格式化处理,可用 SDFormatter 格式化工具,需要注意盘符:

SDFormatter格式化工具

第二步,烧录

旧版本的树莓派OS可通过 balenaEtcher 软件进行镜像烧录,选择下载好的镜像,选择烧录的盘符,烧录。

balenaEther烧录工具

旧版本烧录好后,可在烧录好的盘里新建空白ssh文件,wifi配置文件,即可连上wifi,用SSH登录。

新版本的树莓派需要用官方烧录工具进行系统烧录,否则无法联网,新建ssh无法联网。

树莓派镜像烧录器

树莓派官方提供了非常多的镜像选择,可直接下载烧录。我这边选择自定义镜像。

树莓派提供的镜像

其中第三个步骤很重要,新版OS需要在高级设置选项中对用户名密码、网络等进行设置,以保证树莓派顺利联网。设置主机名,开启SSH服务,设置用户名及密码,配置WIFI,国家CN,开启语言设置,取消启用遥测。

高级设置界面

官方工具烧录过程同样包含写入和校验两步,等待烧录完成。

烧录成功

第三步 树莓派开机

烧录好的TF卡弹出,重新插入,进入盘符,用Notepad++打开firstrun.sh文件查看用户名WIFI等配置信息。

firsrun.sh

确认无误后,TF弹出插入树莓派,通电开机,等待一分钟左右,可在路由器用户列表中看到带有主机名的主机连入,查看IP备用。

路由器查看IP4 SSH登录

这里用Xshell工具登录IP,端口设为22,SSH登录,连接成功输入用户名及密码,登入raspbian系统,查看系统信息。

uname -a64位系统5 开启VNC服务

为方便后期对文件进行查看,开启VNC服务,Xftp提供文件传输服务,可完成新建复制删除等操作,这一步可忽略。

执行命令:

sudo raspi-config

键盘选择Interface Options,回车确认。

Interface Options

开启VNC

VNC选择是成功开启VNCFinish

TAB选择Finish,回车退出。

执行重启命令等待开机:

sudo reboot

VNC可用VNC-Viewer工具查看系统桌面,输入IP地址连接树莓派即可。

VNC-Viewer

初次连入,选择continue。

连接确认

进入raspbian系统桌面。

系统桌面Python虚拟环境搭建

树莓派系统内置python,SSH登入树莓派,输入python -V查看python版本为3.9.2。

python -V

这里使用anaconda进行虚拟环境搭建

1 miniconda下载

首先,下载适合系统的miniconda:

wget http://repo.continuum.io/miniconda/Miniconda3-latest-Linux-aarch64.sh下载适合的miniconda32 miniconda安装

安装 Miniconda 基本也属于一键安装的模式,需要注意的是要设置一下安装的路径,具体操作如下:

sudo bash Miniconda3-latest-Linux-aarch64.sh

接下来根据提示,按 Enter 跳过安装协议(注意别按太快,否则会直接退出)

continueEnter跳过协议yes接受协议

接下来重点注意,更改默认路径,其默认路径是/root/miniconda3,为了日后使用方便,我们会将安装路径设置成用户目录之下,具体路径/home/pi/miniconda3,设置完路径后,等待安装完成即可。不要乱输入,否则路径会有问题,尤其注意home前的“/”,以及最后没有“/”:

更改默认路径

这里遇到问题,提示Illegal instruction "$CONDA_EXEC" constructor --prefix "$PREFIX" --extract-conda-pkgs。被这个问题困扰了很久,最终通过选用较早版本的miniconda解决,其他步骤同上:

wget https://repo.anaconda.com/miniconda/Miniconda3-py37_4.9.2-Linux-aarch64.sh

输入yes同意初始化,自动配置环境变量:

同意初始化

看到Thank you for installing Miniconda3即安装成功:

Miniconda3安装成功

注意Miniconda3文件夹为root权限,需要更改为pi用户后使用conda命令(注意:这里可以在安装miniconda时用bash命令即默认为pi用户)。

所有者为root3 添加 .bashrc 配置vim ~/.bashrc

提示 -bash: vim: command not found,因为linux系统上未安装vim,一般默认的是有vi,之所以选择vim,是因为个人的习惯以及vim的一些功能比较强大。这里我们改为vi:

vi ~/.bashrc

打开~/.bashrc,在环境变量配置文件最后添加以下语句(如果已经有了就不需要更改了,如果没有打开后输入i, 进入编辑模式,粘贴下面语句,按Esc,并且输入:wq保存并退出):

export PATH="/home/pi/miniconda3/bin:"$PATH配置环境变量

注意:export后面为两个空格,否则会出现以下错误:

-bash: export: `=': not a valid identifier -bash: export: `=/home/pi/Miniconda3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games': not a valid identifier配置完成后,更新环境变量: source ~/.bashrc

最后,输入conda命令,正常返回,说明conda安装配置成功。

conda返回版本信息,这里应该是4.9.2

安装完之后可以使用conda命令查看一下,出现-bash: conda: command not found,说明是root超级用户,需要更改到pi用户下。

查看用户

因为刚才使用 sudo 安装,Miniconda3 的所有者是 root,需要先变更一下文件夹属性,具体操作如下:

sudo chown pi:pi -R Miniconda3更改用户

如果你在pi用户下可以使用conda命令请跳过变更操作,或者如果你并不想更改为pi下,可以使用sudo su命令切换到root下,但是每次你都需要切换会很麻烦。

创建虚拟环境

创建自己想要的环境,比如我想要Python3.9,那么输入以下内容,即可创建新的虚拟环境:

# -n 即--name 后面的python310是我起的虚拟环境的名字,python=3.9是python的版本 conda create -n python39 python=3.10

输入以下命令来激活/切换虚拟环境:

conda activate python310

虚拟环境中使用命令conda install your_package即可安装package到your_env_name中。使用conda安装,会自动帮你安装相关的从属包以及cudnn的对应版本。

输入deactivate退出激活:

conda deactivate

删除虚拟环境:

conda remove -n your_env_name(虚拟环境名称) --all

删除环境中的某个包:

conda remove --name your_env_name package_name

注意:

树莓派关机重启后,初次使用conda激活虚拟环境遇到以下问题,需要初始化conda,以实现shell交互:

需要初始化conda

conda功能的关键部分要求它与调用conda的shell直接交互。特别是 "conda activate "和 "conda deactivate "命令是shell级命令。也就是说,它们影响被交互的shell上下文的状态(例如环境变量)。其他核心命令,如`conda create`和`conda install`,也必须与shell环境交互。因此,它们是以每个shell特有的方式来实现的。每个shell都必须进行配置以利用它们。

输入以下指令:

conda init --all初始化命令返回

运行 "conda init "后,shells需要关闭并重新启动以使变化生效,输入以下指令重启树莓派即可:

sudo reboot

知行合一



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3